package cn.lan.generator.manager;

import cn.lan.generator.bean.TableEntity;
import cn.lan.generator.bean.Connector;
import cn.lan.generator.bean.ProjInfo;

/**
 * @author lanping
 * @version 1.0
 * @date 2019-07-13
 **/
public abstract class AbstractProjectManager {

    /**
     * 创建项目基础框架代码
     *
     * @param connector
     * @param projInfo
     * @throws Exception
     */
    public abstract void createFilesEmptyBusiness(Connector connector, ProjInfo projInfo) throws Exception;

    /**
     * 创建项目
     *
     * @param connector
     * @param projInfo
     * @throws Exception
     */
    public abstract void createFiles(Connector connector, ProjInfo projInfo) throws Exception;

    /**
     * 创建项目
     *
     * @param connector
     * @param projInfo
     * @param hasCommon 是否创建公共文件
     * @throws Exception
     */
    public abstract void createFiles(Connector connector, ProjInfo projInfo,boolean hasCommon) throws Exception;

    /**
     * 创建单表类
     *
     * @param connector
     * @param projInfo
     * @param tableEntity
     * @throws Exception
     */
    public abstract void createFilesByTables(Connector connector, ProjInfo projInfo, TableEntity tableEntity) throws Exception;

}
